package com.app.service;

import com.app.entity.po.HuibenHomework;
import com.app.vo.HomeworkDetailVO;
import com.app.vo.HomeworkInfoVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import com.app.vo.HomeworkUserVO;
import com.app.vo.BookVO;
import java.util.Map;
import com.app.vo.CreateHomeworkDTO;

/**
 * <p>
 * 作业表 服务类
 * </p>
 *
 * @author lizi
 * @since 2025-07-29
 */
public interface IHuibenHomeworkService extends IService<HuibenHomework> {

    /**
     * 获取作业详情
     * @param homeworkId 作业ID
     * @param classId 班级ID
     * @return 作业详情
     */
    HomeworkDetailVO getHomeworkDetail(Long homeworkId, Long classId);

    /**
     * 获取班级下所有作业及完成人数（分页）
     */
    List<HomeworkInfoVO> getHomeworkList(Long classId, Integer page, Integer pageSize);

    /**
     * 获取已完成用户列表
     */
    List<HomeworkUserVO> getCompletedUsers(Long homeworkId, Long classId);

    /**
     * 获取未完成用户列表
     */
    List<HomeworkUserVO> getUncompletedUsers(Long homeworkId, Long classId);

    /**
     * 根据书籍ID数组批量获取书籍详情
     */
    List<BookVO> getBookDetailByIds(List<Long> bookIds);

    /**
     * 获取绘本列表（分页）
     */
    Map<String, Object> getBookList(Integer page, Integer pageSize, String keyword);

    /**
     * 创建作业
     */
    Long createHomework(CreateHomeworkDTO createHomeworkVO);
}
